#include "interface.hpp"
using namespace QuantumWalk;
using namespace boost::numeric::ublas;


template<typename T> 
void interface<T>::run(){
  for(int k=0; k<steps_;k++){
    psi_ *=C_;
    psi_ *=S_;
    if( std::abs(k % steps_) == 0){
      //WRITE HERE
    }
  }
}



// void interface::run(){
  
//   for(int t=0;t<steps;t++){
    
//     //Coin
//     psi *= C;
//     //Shift
//     psi *= S;
    
//     if(std::abs(t % skip) == 0){
//       write();
//     }
//   }
//}

// void interface::initialize(std::string filename){
//   //Initialize fname
//   fname=filename;
//   //open file
//   alps::hdf5::archive ar(fname,"rw");
//   //READ dimV, dimD, steps and skip
//   ar >> alps::make_pvp("input/parameters/dimV",dimV);
//   ar >> alps::make_pvp("input/parameters/dimD",dimD);
//   ar >> alps::make_pvp("input/parameters/steps",steps);
//   ar >> alps::make_pvp("input/parameters/skip",skip);
  //READ Coin, and check that it is dimD x dimD
  
  
  
  //for(it = c.begin(); it != c.end(); it++){
  //  std::cout<<*it<<std::endl;
  //}
  //READ Shift, dimD  dimV x dimV operators
  
  //READ State, dimD x dimV matrix 
  
  //Create group output in fil e
//}


// void interface::write(){
//   //Open file

//   //write probability distribution and t to file into group output

// }
